Data integrity is an important feature for any data storage device and data transmission. Use of strong error-correction codes (ECCs) is recommended for various types of data storage devices include NAND flash memory devices. ECCs are also frequently used during the process of data transmission.
Error correcting code (ECC) refers to codes that add redundant data, or parity data, to a message, such that the message can be recovered by a receiver even when a number of errors were introduced, either during the process of transmission, or storage. In general, the ECC can correct the errors up to the capability of the code being used.
Low-density parity-check (LDPC) codes are an example of ECC. Generally, an LDPC decoder uses an iterative decoding process to decode information bits. The iterative decoding consumes time and levies a processing burden. Typically, the time and processing burden increase with an increase to the number of performed iterations. In certain latency sensitive applications (e.g., where the decoding should be completed within a short time period) and/or processing sensitive applications (e.g., where the decoding should use a small amount of processing), existing iterative decoding processes of LDPC codes may not be able to meet the desired latency and/or processing performance.